{ "cells": [ { "cell_type": "markdown", "id": "8d9f8656-ab02-411d-9369-693546ee8284", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Advanced Plotting " ] }, { "cell_type": "raw", "id": "49385c01-f910-4268-bb94-37b81fb0b87b", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ ".. currentmodule:: massdash" ] }, { "cell_type": "markdown", "id": "77fd2f73-2c5e-4c22-b3a0-89903aaf3a22", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "This contains an overview of how to generate plots directly from the plotting library." ] }, { "cell_type": "markdown", "id": "36d69fdf-31f6-4216-8c68-2ac9c910bd55", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "
\n", "Warning\n", " \n", "Plotting library interface is currently *unstable*. Please be aware that future changes may break the current interface!\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "id": "2f7b4ad2-0486-4f1b-ba89-11e7dd381b0e", "metadata": { "editable": true, "nbsphinx": "hidden", "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "id": "967fa58d-ebac-45f0-884b-3ac3b4ff538b", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "MassDash is also capable of generating many different other plot types. Since these plots are more complex, plotting is more involved. " ] }, { "cell_type": "code", "execution_count": 2, "id": "87a69b67-611c-4669-b64e-442486e6303c", "metadata": { "editable": true, "nbsphinx": "hidden", "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# Please run this before executing any cell\n", "import os\n", "os.chdir(\"../../test/test_data/\") #### Insert path to data, this is the path to the tutorial data. " ] }, { "cell_type": "raw", "id": "5f520911-cb20-4ad8-9f57-57f5b72fc726", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "In general to create a plot we have to fetch the data \n", "\n", "1. Fetch the data in either a :py:class:`~structs.TransitionGroup` or :py:class:`~structs.FeatureMap` object, depending on our plottype. \n", "2. Initiate a :py:class:`~plotting.PlotConfig`\n", "3. Initiate a Plotter object (e.g. :py:class:`~plotting.InterativePlotter` :py:class:`~plotting.InteractiveTwoDimensionalPlotter`, :py:class:`~plotting.InteractiveThreeDimensionalPlotter`) with the :py:class:`~plotting.PlotConfig`\n", "4. Call the :py:class:`~plotting.GenericPlotter.plot` method with the :py:class:`~structs.TransitionGroup` or :py:class:`~structs.FeatureMap` object.\n", "5. Show the plot (bokeh or plotly backend depending on the plot) " ] }, { "cell_type": "markdown", "id": "ac70cb9d-950a-4b5b-8101-e82b4c7fbeec", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "Here is an example of how we can plot a chromatogram directly using the plotting library. " ] }, { "cell_type": "markdown", "id": "3fa53891-f431-4144-9052-fb080b1e127c", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## 1. Fetch the Target Data" ] }, { "cell_type": "raw", "id": "3d640e75-db7a-4ede-acd4-c9c989c850dd", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "First, lets load our a sample :py:class:`~structs.TransitionGroup` for plotting." ] }, { "cell_type": "code", "execution_count": 3, "id": "efbbf242-6cb5-4e67-a771-38d8d5357d9a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Initializing valid scores for selection\n", "[2024-10-10 08:03:40,127] MzMLDataAccess - INFO - Opening mzml/ionMobilityTest.mzML file...: Elapsed 0.1749250888824463 ms\n", "[2024-10-10 08:03:40,129] MzMLDataAccess - INFO - There are 50 spectra and 0 chromatograms.\n", "[2024-10-10 08:03:40,130] MzMLDataAccess - INFO - There are 25 MS1 spectra and 25 MS2 spectra.\n" ] } ], "source": [ "from massdash.loaders import MzMLDataLoader\n", "from massdash.structs import TargetedDIAConfig\n", "\n", "# Initate TargetedDIAConfig and set parameters\n", "extraction_config = TargetedDIAConfig()\n", "extraction_config.im_window = 0.2\n", "extraction_config.rt_window = 50\n", "extraction_config.mz_tol = 20\n", "\n", "# Initiate loader object\n", "loader = MzMLDataLoader(dataFiles=\"mzml/ionMobilityTest.mzML\",\n", " rsltsFile=\"osw/ionMobilityTest.osw\")\n", "\n", "# fetch transitionGroup for target peptide\n", "transitionGroup = loader.loadTransitionGroups(\"AFVDFLSDEIK\", 2, extraction_config)['ionMobilityTest']" ] }, { "cell_type": "markdown", "id": "737b9ab3-f48a-42bf-a30b-95edd83622f6", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "If the above code block does not look familliar please visit the [Loading Spectrum Data](Loading\\ Spectrum\\ Data.ipynb) page." ] }, { "cell_type": "markdown", "id": "de860daf-946f-4007-b20e-70c425847b60", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## 2. Initiate the PlotConfig Object" ] }, { "cell_type": "raw", "id": "2ddc1ab8-3d9b-431f-9e55-8c5b01dc373a", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "A :py:class:`~plotting.PlotConfig` object is required to initiate any plotting object. " ] }, { "cell_type": "markdown", "id": "00a6fee0-3f0e-4c09-91c2-114933aa583b", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### General Configurations" ] }, { "cell_type": "raw", "id": "f4d81174-24ed-445f-b208-b4c56a4f0d79", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ ".. autoclass:: massdash.plotting.PlotConfig\n", " :noindex:" ] }, { "cell_type": "markdown", "id": "3e579fa7-2042-40f1-930e-4f406ac76dfa", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "For this example chromatogram we will use the following configuration set below" ] }, { "cell_type": "code", "execution_count": 4, "id": "85647669-bf68-418c-ab54-671dc8faced6", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "from massdash.plotting import PlotConfig\n", "plotConfig = PlotConfig()\n", "plotConfig.include_ms1 = True\n", "plotConfig.include_ms2 = True\n", "plotConfig.aggregate_mslevels = True\n", "plotConfig.smoothing_dict = dict(type='sgolay',sgolay_polynomial_order=3, sgolay_frame_length=11) \n", "plotConfig.title = \"Test Chromatogram\"" ] }, { "cell_type": "markdown", "id": "8299e3a8-1466-4380-8ed6-cae648bbed5a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## 3. Initiate the Plotting Object" ] }, { "cell_type": "code", "execution_count": 5, "id": "bbc266d3-39ea-4d89-bf5e-b465fe25cd11", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "from massdash.plotting import InteractivePlotter\n", "plotter = InteractivePlotter(plotConfig)" ] }, { "cell_type": "markdown", "id": "5f5f0e92-0908-4188-b1bc-9264d47d1057", "metadata": { "editable": true, "raw_mimetype": "", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## 4. Plot" ] }, { "cell_type": "code", "execution_count": 6, "id": "1fb360cd-72ca-409c-8c26-864f3adeac81", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " const events = require('base/js/events');\n", " const OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " const el = document.getElementById(\"1095\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(\"1095\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n const el = document.getElementById(\"1095\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"1095\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"86bdc465-b587-4a81-be25-3b037e64d18b\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1011\"}],\"center\":[{\"id\":\"1014\"},{\"id\":\"1018\"}],\"height\":450,\"left\":[{\"id\":\"1015\"}],\"renderers\":[{\"id\":\"1044\"},{\"id\":\"1051\"},{\"id\":\"1058\"},{\"id\":\"1065\"},{\"id\":\"1072\"},{\"id\":\"1079\"},{\"id\":\"1086\"}],\"right\":[{\"id\":\"1038\"}],\"sizing_mode\":\"scale_width\",\"title\":{\"id\":\"1035\"},\"toolbar\":{\"id\":\"1027\"},\"toolbar_location\":\"above\",\"width\":800,\"x_range\":{\"id\":\"1003\"},\"x_scale\":{\"id\":\"1007\"},\"y_range\":{\"id\":\"1005\"},\"y_scale\":{\"id\":\"1009\"}},\"id\":\"1002\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1050\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1060\"}},\"id\":\"1066\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"gAZiRJJPD0UAAAAAAAAAAAAAAAAAAAAATGq/RuRRRUclv4VHlrGXR4K0l0dFHIZHROVERw5xuEYAAAAAAAAAAAAAAABjWspERcrYRPXI30RNV99EKUHNRGdSn0TGrRZE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1117\"},\"selection_policy\":{\"id\":\"1116\"}},\"id\":\"1081\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1110\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1049\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"6seERM9eL0UszkdDAAAAAAAAAAAAAAAAQSXNRrUEVUdq7pBHAI+lR3GcpkdvM5RHRvRbRyEu1kYAAAAAAAAAAAAAAAASGp5EIZTVRMc+9UQRwA9FgasiRR3hK0VN4CNF\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1113\"},\"selection_policy\":{\"id\":\"1112\"}},\"id\":\"1067\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"click_policy\":\"mute\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1088\"},{\"id\":\"1089\"},{\"id\":\"1090\"},{\"id\":\"1091\"},{\"id\":\"1092\"},{\"id\":\"1093\"},{\"id\":\"1094\"}],\"label_text_font_size\":\"10pt\",\"location\":\"top_left\",\"title\":\"Transition\"},\"id\":\"1038\",\"type\":\"Legend\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1046\"},\"glyph\":{\"id\":\"1048\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1050\"},\"nonselection_glyph\":{\"id\":\"1049\"},\"view\":{\"id\":\"1052\"}},\"id\":\"1051\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"tools\":[{\"id\":\"1019\"},{\"id\":\"1020\"},{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1026\"}]},\"id\":\"1027\",\"type\":\"Toolbar\"},{\"attributes\":{\"source\":{\"id\":\"1046\"}},\"id\":\"1052\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_dash\":[6],\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1042\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1019\",\"type\":\"PanTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#98df8a\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1084\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"y4^1\"},\"renderers\":[{\"id\":\"1051\"}]},\"id\":\"1089\",\"type\":\"LegendItem\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"kfLPRGupSEUAAAAAAAAAAAAAAAAAAAAAa2kDR3zKikfO2r1HxFnYRyjH2UcOrMFHTUqPRxPYCkcAAAAAAAAAAAAAAAAz5idFIl09RXrDREUuGURF9RgyRYp9BUWWBlRE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1109\"},\"selection_policy\":{\"id\":\"1108\"}},\"id\":\"1053\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ffbb78\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1070\",\"type\":\"Line\"},{\"attributes\":{\"align\":\"center\",\"coordinates\":null,\"group\":null,\"text\":\"Test Chromatogram\",\"text_font_size\":\"13pt\"},\"id\":\"1035\",\"type\":\"Title\"},{\"attributes\":{\"axis_label\":\"Intensity\",\"axis_label_text_font_size\":\"11pt\",\"coordinates\":null,\"formatter\":{\"id\":\"1099\"},\"group\":null,\"major_label_policy\":{\"id\":\"1100\"},\"major_label_text_font_size\":\"11pt\",\"ticker\":{\"id\":\"1016\"}},\"id\":\"1015\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#98df8a\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1083\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1114\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1104\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#aec7e8\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1056\",\"type\":\"Line\"},{\"attributes\":{\"overlay\":{\"id\":\"1025\"}},\"id\":\"1021\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#98df8a\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1085\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#ffbb78\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1069\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1113\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1081\"},\"glyph\":{\"id\":\"1083\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1085\"},\"nonselection_glyph\":{\"id\":\"1084\"},\"view\":{\"id\":\"1087\"}},\"id\":\"1086\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ffbb78\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1071\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1117\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1011\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1014\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1107\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1108\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1099\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#aec7e8\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1055\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1016\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1067\"},\"glyph\":{\"id\":\"1069\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1071\"},\"nonselection_glyph\":{\"id\":\"1070\"},\"view\":{\"id\":\"1073\"}},\"id\":\"1072\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1081\"}},\"id\":\"1087\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1103\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1106\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#aec7e8\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1057\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1067\"}},\"id\":\"1073\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"HelpTool\"},{\"attributes\":{\"label\":{\"value\":\"prec\"},\"renderers\":[{\"id\":\"1044\"}]},\"id\":\"1088\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1053\"},\"glyph\":{\"id\":\"1055\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1057\"},\"nonselection_glyph\":{\"id\":\"1056\"},\"view\":{\"id\":\"1059\"}},\"id\":\"1058\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\"y5^1\"},\"renderers\":[{\"id\":\"1058\"}]},\"id\":\"1090\",\"type\":\"LegendItem\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"yJSoRBuQqkXtZx1DAAAAAAAAAAAAAAAAObdNRxPf1kd+3hFIpIclSGJ4JUhmIhJIyUnWR8OgR0cAAAAAAAAAAAAAAAAd/T5F3yVXRUcJW0XU5FJFR1E1RcLO8UQV/6FD\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1115\"},\"selection_policy\":{\"id\":\"1114\"}},\"id\":\"1074\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1053\"}},\"id\":\"1059\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1105\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1020\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"label\":{\"value\":\"y6^1\"},\"renderers\":[{\"id\":\"1065\"}]},\"id\":\"1091\",\"type\":\"LegendItem\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"SxEPRYJj+EQAAAAAAAAAAAAAAAAAAAAAU+LkRut3bEdYJqBHLMK1R2wytkdFN6FHAKlsR9ia30YAAAAAAAAAAAAAAACjbPZEaCz5RF+kB0Xbrw9FPCkLRTMC4UQioFhE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1111\"},\"selection_policy\":{\"id\":\"1110\"}},\"id\":\"1060\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"ResetTool\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"index\",\"$index\"],[\"(rt,int)\",\"(@x{0.00}, @y)\"]]},\"id\":\"1026\",\"type\":\"HoverTool\"},{\"attributes\":{\"source\":{\"id\":\"1039\"}},\"id\":\"1045\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"3tGbTgFRuEBASMP+ylK4QAXv/LeUVLhAohkYAF5WuEASPzUMKFi4QNoH8u3xWbhAcwMggrxbuEBsyS+Rh124QDvU8pNSX7hA1/Ke5R1huECWl8Dx7GK4QIkDkPe2ZLhAJvikyYFmuECJpYOVTmi4QEUaoQ8barhAFA4/6+hruEAa+x5Etm24QDUu4t6Eb7hAztsc3VJxuEAstZR1IHO4QHs6sk74dLhAQcgTecd2uECYaFUdlni4QHnu7+9jerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"AAAAAE/RAkbis75FAAAAAAAAAAAAAAAATdgqR64NykdbYg5Iy7okSBGvJ0i61xZIQi/kR9iCakcAAAAAAAAAAAAAAACXbsREGC8HRW6sBkWG6gZFf+YBRfA640QhGaBE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1105\"},\"selection_policy\":{\"id\":\"1104\"}},\"id\":\"1039\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_dash\":[6],\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1043\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1039\"},\"glyph\":{\"id\":\"1041\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1043\"},\"nonselection_glyph\":{\"id\":\"1042\"},\"view\":{\"id\":\"1045\"}},\"id\":\"1044\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1077\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"y7^1\"},\"renderers\":[{\"id\":\"1072\"}]},\"id\":\"1092\",\"type\":\"LegendItem\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1025\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1102\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1100\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1012\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"Retention Time\",\"axis_label_text_font_size\":\"11pt\",\"coordinates\":null,\"formatter\":{\"id\":\"1102\"},\"group\":null,\"major_label_policy\":{\"id\":\"1103\"},\"major_label_text_font_size\":\"11pt\",\"ticker\":{\"id\":\"1012\"}},\"id\":\"1011\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1109\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1116\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1063\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1076\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1112\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"label\":{\"value\":\"y8^1\"},\"renderers\":[{\"id\":\"1079\"}]},\"id\":\"1093\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1078\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1062\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"y9^1\"},\"renderers\":[{\"id\":\"1086\"}]},\"id\":\"1094\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1115\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1003\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1111\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1074\"},\"glyph\":{\"id\":\"1076\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1078\"},\"nonselection_glyph\":{\"id\":\"1077\"},\"view\":{\"id\":\"1080\"}},\"id\":\"1079\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.5,\"line_dash\":[6],\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1041\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1064\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1015\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1018\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1074\"}},\"id\":\"1080\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"Fo/VQ+moM0QAAAAAAAAAAAAAAAAAAAAAeMcGRk9miEZ2lrlGJ/DSRqKa0kZ3ZrpGvLyIRuTmBkYAAAAAAAAAAAAAAAAVPyREDTZgRNpXZESTql5EeOZIRMPDHERl9adD\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1107\"},\"selection_policy\":{\"id\":\"1106\"}},\"id\":\"1046\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1005\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1060\"},\"glyph\":{\"id\":\"1062\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1064\"},\"nonselection_glyph\":{\"id\":\"1063\"},\"view\":{\"id\":\"1066\"}},\"id\":\"1065\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1007\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1048\",\"type\":\"Line\"}],\"root_ids\":[\"1002\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"86bdc465-b587-4a81-be25-3b037e64d18b\",\"root_ids\":[\"1002\"],\"roots\":{\"1002\":\"de54f010-becf-4367-9e9d-23f78bc027ac\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1002" } }, "output_type": "display_data" } ], "source": [ "fig = plotter.plot(transitionGroup)\n", "plotter.show()" ] }, { "cell_type": "code", "execution_count": 7, "id": "f014000a-dbee-4651-8b8b-61a7e2aef918", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "{'type': 'sgolay', 'sgolay_polynomial_order': 3, 'sgolay_frame_length': 11}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plotConfig.smoothing_dict" ] }, { "cell_type": "markdown", "id": "d584c7fd-21b1-4180-9322-fc7829168a64", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### Add Transition Group Features to the Plot" ] }, { "cell_type": "markdown", "id": "a0a3891d-bbd0-473f-a0b1-4fe1a6f345a8", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "To add `TransitionGroupFeatures` to the plot we can use the `plot_boundaries` method" ] }, { "cell_type": "code", "execution_count": 8, "id": "7d767007-171f-4f38-8626-30fb3b9240f1", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# fetch transition group features\n", "transitionGroupFeatures = loader.loadTransitionGroupFeatures(\"AFVDFLSDEIK\", 2)['ionMobilityTest']" ] }, { "cell_type": "code", "execution_count": 9, "id": "dba7d5bd-8512-454e-af08-d9f9fef4716d", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " const events = require('base/js/events');\n", " const OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " const el = document.getElementById(\"1367\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(\"1367\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n const el = document.getElementById(\"1367\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"1367\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"6c9a7089-c6a1-4eb5-a4e4-d2c8bcacef1f\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1243\"}],\"center\":[{\"id\":\"1246\"},{\"id\":\"1250\"}],\"height\":450,\"left\":[{\"id\":\"1247\"}],\"renderers\":[{\"id\":\"1276\"},{\"id\":\"1283\"},{\"id\":\"1290\"},{\"id\":\"1297\"},{\"id\":\"1304\"},{\"id\":\"1311\"},{\"id\":\"1318\"},{\"id\":\"1332\"},{\"id\":\"1338\"},{\"id\":\"1344\"},{\"id\":\"1351\"},{\"id\":\"1357\"},{\"id\":\"1363\"}],\"right\":[{\"id\":\"1270\"}],\"sizing_mode\":\"scale_width\",\"title\":{\"id\":\"1267\"},\"toolbar\":{\"id\":\"1259\"},\"toolbar_location\":\"above\",\"width\":800,\"x_range\":{\"id\":\"1235\"},\"x_scale\":{\"id\":\"1239\"},\"y_range\":{\"id\":\"1237\"},\"y_scale\":{\"id\":\"1241\"}},\"id\":\"1234\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"click_policy\":\"mute\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1320\"},{\"id\":\"1321\"},{\"id\":\"1322\"},{\"id\":\"1323\"},{\"id\":\"1324\"},{\"id\":\"1325\"},{\"id\":\"1326\"}],\"label_text_font_size\":\"10pt\",\"location\":\"top_left\",\"title\":\"Transition\"},\"id\":\"1270\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"1403\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1B9E77\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#1B9E77\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1B9E77\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"leftWidth\"}},\"id\":\"1331\",\"type\":\"VBar\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#aec7e8\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1289\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"leftWidth\"},\"y\":{\"field\":\"Intensity\"}},\"id\":\"1362\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1404\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#98df8a\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1316\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1346\"},\"glyph\":{\"id\":\"1360\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1362\"},\"name\":\"leftWidth_apex_point\",\"nonselection_glyph\":{\"id\":\"1361\"},\"view\":{\"id\":\"1364\"}},\"id\":\"1363\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_dash\":[6],\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1274\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"kfLPRGupSEUAAAAAAAAAAAAAAAAAAAAAa2kDR3zKikfO2r1HxFnYRyjH2UcOrMFHTUqPRxPYCkcAAAAAAAAAAAAAAAAz5idFIl09RXrDREUuGURF9RgyRYp9BUWWBlRE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1404\"},\"selection_policy\":{\"id\":\"1403\"}},\"id\":\"1285\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_color\":{\"value\":\"#1B9E77\"},\"hatch_color\":{\"value\":\"#1B9E77\"},\"line_color\":{\"value\":\"#1B9E77\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"leftWidth\"}},\"id\":\"1329\",\"type\":\"VBar\"},{\"attributes\":{\"data\":{\"Intensity\":[355720.15625],\"bottom_int\":[0],\"leftWidth\":[6235.8486328125],\"ms2_mscore\":[3.5084067486223456e-05],\"rightWidth\":[6248.42822265625]},\"selected\":{\"id\":\"1414\"},\"selection_policy\":{\"id\":\"1413\"}},\"id\":\"1327\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1299\"},\"glyph\":{\"id\":\"1301\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1303\"},\"nonselection_glyph\":{\"id\":\"1302\"},\"view\":{\"id\":\"1305\"}},\"id\":\"1304\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"gAZiRJJPD0UAAAAAAAAAAAAAAAAAAAAATGq/RuRRRUclv4VHlrGXR4K0l0dFHIZHROVERw5xuEYAAAAAAAAAAAAAAABjWspERcrYRPXI30RNV99EKUHNRGdSn0TGrRZE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1412\"},\"selection_policy\":{\"id\":\"1411\"}},\"id\":\"1313\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1237\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"1247\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1250\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#aec7e8\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1288\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#ffbb78\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1301\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1346\"}},\"id\":\"1364\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1255\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1248\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_color\":{\"value\":\"#D95F02\"},\"hatch_color\":{\"value\":\"#D95F02\"},\"line_color\":{\"value\":\"#D95F02\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"leftWidth\"}},\"id\":\"1348\",\"type\":\"VBar\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"3tGbTgFRuEBASMP+ylK4QAXv/LeUVLhAohkYAF5WuEASPzUMKFi4QNoH8u3xWbhAcwMggrxbuEBsyS+Rh124QDvU8pNSX7hA1/Ke5R1huECWl8Dx7GK4QIkDkPe2ZLhAJvikyYFmuECJpYOVTmi4QEUaoQ8barhAFA4/6+hruEAa+x5Etm24QDUu4t6Eb7hAztsc3VJxuEAstZR1IHO4QHs6sk74dLhAQcgTecd2uECYaFUdlni4QHnu7+9jerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"AAAAAE/RAkbis75FAAAAAAAAAAAAAAAATdgqR64NykdbYg5Iy7okSBGvJ0i61xZIQi/kR9iCakcAAAAAAAAAAAAAAACXbsREGC8HRW6sBkWG6gZFf+YBRfA640QhGaBE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1400\"},\"selection_policy\":{\"id\":\"1399\"}},\"id\":\"1271\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1413\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#aec7e8\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1287\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#98df8a\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1315\",\"type\":\"Line\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#D95F02\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#D95F02\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#D95F02\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"leftWidth\"}},\"id\":\"1349\",\"type\":\"VBar\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#98df8a\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1317\",\"type\":\"Line\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1B9E77\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#1B9E77\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1B9E77\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"leftWidth\"}},\"id\":\"1330\",\"type\":\"VBar\"},{\"attributes\":{},\"id\":\"1405\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1414\",\"type\":\"Selection\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#D95F02\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#D95F02\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#D95F02\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"leftWidth\"}},\"id\":\"1350\",\"type\":\"VBar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1271\"},\"glyph\":{\"id\":\"1273\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1275\"},\"nonselection_glyph\":{\"id\":\"1274\"},\"view\":{\"id\":\"1277\"}},\"id\":\"1276\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1327\"},\"glyph\":{\"id\":\"1329\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1331\"},\"nonselection_glyph\":{\"id\":\"1330\"},\"view\":{\"id\":\"1333\"}},\"id\":\"1332\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_dash\":[6],\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1275\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1406\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1327\"}},\"id\":\"1333\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"y4^1\"},\"renderers\":[{\"id\":\"1283\"}]},\"id\":\"1321\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1313\"},\"glyph\":{\"id\":\"1315\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1317\"},\"nonselection_glyph\":{\"id\":\"1316\"},\"view\":{\"id\":\"1319\"}},\"id\":\"1318\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.5,\"line_dash\":[6],\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1273\",\"type\":\"Line\"},{\"attributes\":{\"align\":\"center\",\"coordinates\":null,\"group\":null,\"text\":\"Test Chromatogram\",\"text_font_size\":\"13pt\"},\"id\":\"1267\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1285\"},\"glyph\":{\"id\":\"1287\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1289\"},\"nonselection_glyph\":{\"id\":\"1288\"},\"view\":{\"id\":\"1291\"}},\"id\":\"1290\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1394\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_color\":{\"value\":\"#1B9E77\"},\"hatch_color\":{\"value\":\"#1B9E77\"},\"line_color\":{\"value\":\"#1B9E77\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"rightWidth\"}},\"id\":\"1335\",\"type\":\"VBar\"},{\"attributes\":{\"source\":{\"id\":\"1313\"}},\"id\":\"1319\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1285\"}},\"id\":\"1291\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1310\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1346\"},\"glyph\":{\"id\":\"1348\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1350\"},\"nonselection_glyph\":{\"id\":\"1349\"},\"view\":{\"id\":\"1352\"}},\"id\":\"1351\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1346\"}},\"id\":\"1352\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1B9E77\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#1B9E77\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1B9E77\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"rightWidth\"}},\"id\":\"1336\",\"type\":\"VBar\"},{\"attributes\":{},\"id\":\"1397\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"Fo/VQ+moM0QAAAAAAAAAAAAAAAAAAAAAeMcGRk9miEZ2lrlGJ/DSRqKa0kZ3ZrpGvLyIRuTmBkYAAAAAAAAAAAAAAAAVPyREDTZgRNpXZESTql5EeOZIRMPDHERl9adD\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1402\"},\"selection_policy\":{\"id\":\"1401\"}},\"id\":\"1278\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1295\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1407\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"leftWidth\"},\"y\":{\"field\":\"Intensity\"}},\"id\":\"1342\",\"type\":\"Circle\"},{\"attributes\":{\"label\":{\"value\":\"prec\"},\"renderers\":[{\"id\":\"1276\"}]},\"id\":\"1320\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1398\",\"type\":\"AllLabels\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_color\":{\"value\":\"#D95F02\"},\"hatch_color\":{\"value\":\"#D95F02\"},\"line_color\":{\"value\":\"#D95F02\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"rightWidth\"}},\"id\":\"1354\",\"type\":\"VBar\"},{\"attributes\":{\"axis_label\":\"Retention Time\",\"axis_label_text_font_size\":\"11pt\",\"coordinates\":null,\"formatter\":{\"id\":\"1397\"},\"group\":null,\"major_label_policy\":{\"id\":\"1398\"},\"major_label_text_font_size\":\"11pt\",\"ticker\":{\"id\":\"1244\"}},\"id\":\"1243\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"Intensity\",\"axis_label_text_font_size\":\"11pt\",\"coordinates\":null,\"formatter\":{\"id\":\"1394\"},\"group\":null,\"major_label_policy\":{\"id\":\"1395\"},\"major_label_text_font_size\":\"11pt\",\"ticker\":{\"id\":\"1248\"}},\"id\":\"1247\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ffbb78\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1302\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1271\"}},\"id\":\"1277\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1408\",\"type\":\"Selection\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1B9E77\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#1B9E77\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1B9E77\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"rightWidth\"}},\"id\":\"1337\",\"type\":\"VBar\"},{\"attributes\":{},\"id\":\"1399\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1252\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"label\":{\"value\":\"y5^1\"},\"renderers\":[{\"id\":\"1290\"}]},\"id\":\"1322\",\"type\":\"LegendItem\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"yJSoRBuQqkXtZx1DAAAAAAAAAAAAAAAAObdNRxPf1kd+3hFIpIclSGJ4JUhmIhJIyUnWR8OgR0cAAAAAAAAAAAAAAAAd/T5F3yVXRUcJW0XU5FJFR1E1RcLO8UQV/6FD\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1410\"},\"selection_policy\":{\"id\":\"1409\"}},\"id\":\"1306\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#D95F02\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#D95F02\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#D95F02\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"rightWidth\"}},\"id\":\"1355\",\"type\":\"VBar\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"SxEPRYJj+EQAAAAAAAAAAAAAAAAAAAAAU+LkRut3bEdYJqBHLMK1R2wytkdFN6FHAKlsR9ia30YAAAAAAAAAAAAAAACjbPZEaCz5RF+kB0Xbrw9FPCkLRTMC4UQioFhE\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1406\"},\"selection_policy\":{\"id\":\"1405\"}},\"id\":\"1292\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1400\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0},\"line_alpha\":{\"value\":0},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"leftWidth\"},\"y\":{\"field\":\"Intensity\"}},\"id\":\"1341\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1281\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1306\"}},\"id\":\"1312\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1327\"},\"glyph\":{\"id\":\"1335\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1337\"},\"nonselection_glyph\":{\"id\":\"1336\"},\"view\":{\"id\":\"1339\"}},\"id\":\"1338\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\"y6^1\"},\"renderers\":[{\"id\":\"1297\"}]},\"id\":\"1323\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1415\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1327\"}},\"id\":\"1339\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1308\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1294\",\"type\":\"Line\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom_int\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#D95F02\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#D95F02\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#D95F02\"},\"top\":{\"field\":\"Intensity\"},\"width\":{\"value\":0.3},\"x\":{\"field\":\"rightWidth\"}},\"id\":\"1356\",\"type\":\"VBar\"},{\"attributes\":{},\"id\":\"1251\",\"type\":\"PanTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1292\"},\"glyph\":{\"id\":\"1294\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1296\"},\"nonselection_glyph\":{\"id\":\"1295\"},\"view\":{\"id\":\"1298\"}},\"id\":\"1297\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1395\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1416\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1278\"},\"glyph\":{\"id\":\"1280\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1282\"},\"nonselection_glyph\":{\"id\":\"1281\"},\"view\":{\"id\":\"1284\"}},\"id\":\"1283\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1299\"}},\"id\":\"1305\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"y7^1\"},\"renderers\":[{\"id\":\"1304\"}]},\"id\":\"1324\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1244\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1409\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"Intensity\":[7292.95654296875],\"bottom_int\":[0],\"leftWidth\":[6255.64599609375],\"ms2_mscore\":[0.0001776217262565],\"rightWidth\":[6266.51513671875]},\"selected\":{\"id\":\"1416\"},\"selection_policy\":{\"id\":\"1415\"}},\"id\":\"1346\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1296\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"leftWidth\"},\"y\":{\"field\":\"Intensity\"}},\"id\":\"1343\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1410\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1346\"},\"glyph\":{\"id\":\"1354\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1356\"},\"nonselection_glyph\":{\"id\":\"1355\"},\"view\":{\"id\":\"1358\"}},\"id\":\"1357\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1401\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1346\"}},\"id\":\"1358\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1254\",\"type\":\"SaveTool\"},{\"attributes\":{\"source\":{\"id\":\"1292\"}},\"id\":\"1298\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1309\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.5,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1280\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ffbb78\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1303\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"names\":[\"leftWidth_apex_point\"],\"tooltips\":[[\"Intensity\",\"@Intensity\"],[\"Left Width\",\"@leftWidth{0.00}\"],[\"Right Width\",\"@rightWidth{0.00}\"],[\"Peak Group Rank\",\"@peakgroup_rank\"],[\"MS2 m-score\",\"@ms2_mscore\"]]},\"id\":\"1365\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1402\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1235\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0},\"line_alpha\":{\"value\":0},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"leftWidth\"},\"y\":{\"field\":\"Intensity\"}},\"id\":\"1360\",\"type\":\"Circle\"},{\"attributes\":{\"label\":{\"value\":\"y8^1\"},\"renderers\":[{\"id\":\"1311\"}]},\"id\":\"1325\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1241\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1256\",\"type\":\"HelpTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1257\"}},\"id\":\"1253\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1243\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1246\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1278\"}},\"id\":\"1284\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"precursor_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_charge\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"product_mz\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"x\":{\"__ndarray__\":\"r019XhxRuECF3SnS5VK4QMQpRoqvVLhAR0y0pnlWuEAFdTX3Qli4QNeMybANWrhAJlWEPtlbuEBSHSVppV24QIh4ruxvX7hAaQA/6T5huEC8gqPmCGO4QJsAAvbTZLhA3PnT8KBmuEDXLPumbWi4QDbrrsM6arhAgOBwAQhsuEDIM4MF1m24QFFGwVOlb7hAkE/UNXNxuEBSovbxSnO4QNr2xfUZdbhA5HJzuuh2uECUNa0ptni4QCrk7t+DerhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[24]},\"y\":{\"__ndarray__\":\"6seERM9eL0UszkdDAAAAAAAAAAAAAAAAQSXNRrUEVUdq7pBHAI+lR3GcpkdvM5RHRvRbRyEu1kYAAAAAAAAAAAAAAAASGp5EIZTVRMc+9UQRwA9FgasiRR3hK0VN4CNF\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[24]}},\"selected\":{\"id\":\"1408\"},\"selection_policy\":{\"id\":\"1407\"}},\"id\":\"1299\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1282\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1327\"},\"glyph\":{\"id\":\"1341\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1343\"},\"name\":\"leftWidth_apex_point\",\"nonselection_glyph\":{\"id\":\"1342\"},\"view\":{\"id\":\"1345\"}},\"id\":\"1344\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1239\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1306\"},\"glyph\":{\"id\":\"1308\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1310\"},\"nonselection_glyph\":{\"id\":\"1309\"},\"view\":{\"id\":\"1312\"}},\"id\":\"1311\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1411\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"tools\":[{\"id\":\"1251\"},{\"id\":\"1252\"},{\"id\":\"1253\"},{\"id\":\"1254\"},{\"id\":\"1255\"},{\"id\":\"1256\"},{\"id\":\"1258\"},{\"id\":\"1365\"}]},\"id\":\"1259\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"index\",\"$index\"],[\"(rt,int)\",\"(@x{0.00}, @y)\"]]},\"id\":\"1258\",\"type\":\"HoverTool\"},{\"attributes\":{\"label\":{\"value\":\"y9^1\"},\"renderers\":[{\"id\":\"1318\"}]},\"id\":\"1326\",\"type\":\"LegendItem\"},{\"attributes\":{\"source\":{\"id\":\"1327\"}},\"id\":\"1345\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"leftWidth\"},\"y\":{\"field\":\"Intensity\"}},\"id\":\"1361\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1412\",\"type\":\"Selection\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1257\",\"type\":\"BoxAnnotation\"}],\"root_ids\":[\"1234\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"6c9a7089-c6a1-4eb5-a4e4-d2c8bcacef1f\",\"root_ids\":[\"1234\"],\"roots\":{\"1234\":\"27c72a7f-f982-4c06-92bb-9f652ab22ba3\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1234" } }, "output_type": "display_data" } ], "source": [ "fig = plotter.plot(transitionGroup, transitionGroupFeatures)\n", "plotter.show()" ] }, { "cell_type": "markdown", "id": "b1ab6fa6-da25-41fb-9d79-026b6d4741c3", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## More Information " ] }, { "cell_type": "raw", "id": "51288eb2-da1a-457d-a672-c441e9015741", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "For more information on plotting, please checkout the [Plotting Gallery](../Plotting\\ Gallery.rst) which features recipes for various different plot types. " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.10" } }, "nbformat": 4, "nbformat_minor": 5 }